package com.avic.modules.login.domain;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.sql.Timestamp;
/**
 * @author zhangzikang 登录日志表
 * @date 2022-08-14
 */
@Data
@TableName("login_log")
public class LoginLog implements Serializable {

    /** id */
    private String id;

    /** 部门id */
    private Long deptId;

    /** 用户id */
    private Long userId;

    /** IP地址 */
    private String ipAddress;

    /** 登录时间 */
    private Timestamp loginTime;

    // 用户名
    private String username;

    // 部门名称
    private String deptName;

    /** 下线时间 */
    private Timestamp offlineTime;

    /** 删除标识 */
    @ApiModelProperty(value = "逻辑删除")
    @TableField(value = "is_deleted")
    @TableLogic
    private Integer isDeleted;

    /** 创建人 */
    private Long createUserId;

    /** 创建时间 */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    private Timestamp createTime;

    /** 修改人 */
    private Long updateUserId;

    /** 修改时间 */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    private Timestamp updateTime;

    /** 备注 */
    private String remark;


    public void copy(LoginLog source) {
        BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true));
    }
}
